package org.urbansoft.icl;

import java.util.ArrayList;
import org.apache.log4j.Logger;
import org.urbansoft.icl.record.CashLetterControlRecord;
import org.urbansoft.icl.record.CashLetterHeaderRecord;

/**
 * The Class CashLetter.
 */
public class CashLetter {
	private CashLetterHeaderRecord cashLetterHeader;
	private ArrayList<ForwardPresentmentBundle> forwardPresentmentBundleList;
	private ArrayList<ReturnBundle> returnBundleList;
	private CashLetterControlRecord cashLetterControl;
	// TODO: implement additional record
	// private ArrayList<RoutingNumberSummar> routingNumberSummaryList;

	private static Logger log = Logger.getLogger(CashLetter.class);

	/**
	 * Instantiates a new cash letter.
	 */
	public CashLetter() {
		forwardPresentmentBundleList = new ArrayList<ForwardPresentmentBundle>();
		returnBundleList = new ArrayList<ReturnBundle>();
	}

	/**
	 * Instantiates a new cash letter.
	 * 
	 * @param cashLetterHeader
	 *            the cash letter header
	 * @param forwardPresentmentBundleList
	 *            the forward presentment bundle list
	 * @param returnBundleList
	 *            the return bundle list
	 * @param cashLetterControl
	 *            the cash letter control
	 */
	public CashLetter(CashLetterHeaderRecord cashLetterHeader,
			ArrayList<ForwardPresentmentBundle> forwardPresentmentBundleList,
			ArrayList<ReturnBundle> returnBundleList,
			CashLetterControlRecord cashLetterControl) {
		super();
		this.cashLetterHeader = cashLetterHeader;
		this.forwardPresentmentBundleList = forwardPresentmentBundleList;
		this.returnBundleList = returnBundleList;
		this.cashLetterControl = cashLetterControl;
	}

	/**
	 * Gets the cash letter header.
	 * 
	 * @return the cash letter header
	 */
	public CashLetterHeaderRecord getCashLetterHeader() {
		return cashLetterHeader;
	}

	/**
	 * Sets the cash letter header.
	 * 
	 * @param cashLetterHeader
	 *            the new cash letter header
	 */
	public void setCashLetterHeader(CashLetterHeaderRecord cashLetterHeader) {
		this.cashLetterHeader = cashLetterHeader;
	}

	/**
	 * Gets the forward presentment bundle list.
	 * 
	 * @return the forward presentment bundle list
	 */
	public ArrayList<ForwardPresentmentBundle> getForwardPresentmentBundleList() {
		return forwardPresentmentBundleList;
	}

	/**
	 * Sets the forward presentment bundle list.
	 * 
	 * @param forwardPresentmentBundleList
	 *            the new forward presentment bundle list
	 */
	public void setForwardPresentmentBundleList(
			ArrayList<ForwardPresentmentBundle> forwardPresentmentBundleList) {
		this.forwardPresentmentBundleList = forwardPresentmentBundleList;
	}

	/**
	 * Gets the return bundle list.
	 * 
	 * @return the return bundle list
	 */
	public ArrayList<ReturnBundle> getReturnBundleList() {
		return returnBundleList;
	}

	/**
	 * Sets the return bundle list.
	 * 
	 * @param returnBundleList
	 *            the new return bundle list
	 */
	public void setReturnBundleList(ArrayList<ReturnBundle> returnBundleList) {
		this.returnBundleList = returnBundleList;
	}

	/**
	 * Gets the cash letter control.
	 * 
	 * @return the cash letter control
	 */
	public CashLetterControlRecord getCashLetterControl() {
		return cashLetterControl;
	}

	/**
	 * Sets the cash letter control.
	 * 
	 * @param cashLetterControl
	 *            the new cash letter control
	 */
	public void setCashLetterControl(CashLetterControlRecord cashLetterControl) {
		this.cashLetterControl = cashLetterControl;
	}

}
